package com.choosefine.it.worker.service;

import java.util.List;
import java.util.Map;

import com.choosefine.it.base.dto.PageDTO;
import com.choosefine.it.common.exception.BusinessException;
import com.choosefine.it.team.model.TeamPublishFindWorkerInfo;
import com.choosefine.it.worker.model.WorkDetailInfo;
import com.choosefine.it.worker.model.WorkerFavoriteWork;
import com.choosefine.it.worker.model.WorkerHistoryInfo;
import com.choosefine.it.worker.model.WorkerItemsRelation;
import com.github.pagehelper.Page;
/**
 * 工人工作相关  接口 （收到评论、收藏、工作过的历史）
 * 
 * @auth liaozhanggen 2016-11-18 下午4:28:46
 *
 */
public interface MyWorksManagerService {

	/**
	 * 根据当前登录人，查看工人worker的项目中的评论
	 * @param pageDTO 
	 * 
	 * @param userId
	 * @return
	 */
//	@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
//	Page<WorksAppraise> queryWorkComment(UserInfo user, PageDTO pageDTO) throws BusinessException;

	/**
	 * 添加 工人worker的所在班组中的评论
	 * @param pageDTO 
	 * 
	 * @param userId
	 * @return
	 */
//	@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT,readOnly=false)
//	int addWorkComment(WorkerCommentDTO workerCollectionDTO) throws BusinessException;
	
	/**
	 *  工人添加 对班组的收藏
	 * @auth liaozhanggen 2016-11-19 下午5:28:58
	 */
//	@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT,readOnly=false)
	int insertFavoriteWork(Map<String, Object> param) throws BusinessException;
	
	/**
	 * 失效 工人已经收藏的班组发布的招工信息
	 * @auth liaozhanggen 2016-11-19 下午6:13:54
	 */
//	@Transactional(propagation=Propagation.REQUIRED,isolation=Isolation.DEFAULT,readOnly=false)
	int modifyFavoriteWorkStatus(Map<String, Object> param) throws BusinessException;
	
	/**
	 * 工人人个查看已经收藏的 班组发布的工作的 数据集列表
	 * @auth liaozhanggen 2016-11-19 下午5:30:39
	 */
//	@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
	Page<WorkerFavoriteWork> queryMyFavoriteTeamRecruitmentWorkPageByUuid(Map map,PageDTO pageDTO) throws BusinessException;
	
	/**
	 * 从控制台-添加工人与班组、项目、工种的关系-批量
	 * @auth liaozhanggen 2016-11-21 下午7:57:21
	 */
//	@Transactional(propagation=Propagation.REQUIRED,readOnly=false)
	int addBatchWorkerItemsRelation(List<WorkerItemsRelation> wItemsRelations) throws BusinessException;
	
	/**
	 * 读取工人所参与的工作列表
	 * @auth liaozhanggen 2016-11-22 下午5:47:54
	 */
//	@Transactional(propagation=Propagation.SUPPORTS,readOnly=true)
	Page<WorkerItemsRelation> queryWorkerItemsRelationPageByUCode(String userCode, PageDTO page)throws BusinessException;

	/**
	 * 查询工人项目的历史工作记录情况
	 * 
	 * @auth liaozhanggen 2016-12-1 下午3:00:49
	 */
	Page<WorkerHistoryInfo> queryWorkerHistoryWorkInfo(String userCode,PageDTO page) throws BusinessException;
	
	/**
	 * 查询工人所在班组的工作详情（班组、工程、月考勤信息）
	 * 
	 * @auth liaozhanggen 2016-12-2 上午11:42:31
	 */
	WorkDetailInfo queryWorkerWorkDetialInfo(String userCode,Integer relationId)throws BusinessException;

	/** 
	 * 工人查看班组招聘工人的详情且返回当前工人是否有收藏
	 * @Author：liaozhanggen
	 * @Create Date：2017年2月20日
	 * @param：....
	 * @return：TeamRecruitmentInfo
	 */
	TeamPublishFindWorkerInfo findTeamRecruitmentInfoById(Map map) throws BusinessException;


}

